#ifndef __VECTOR2_H__
#define __VECTOR2_H__

class Vector2
{
public:
	double x, y;

	Vector2(void) : x(0), y(0) {}
	Vector2(double _x, double _y) : x(_x), y(_y) {}
	~Vector2(void);

	Vector2 normalize() const;
	double magnitude() const;
	double angle() const;

	Vector2 operator*(double scale);
	Vector2 operator/(double scale);
	Vector2 operator+(const Vector2 & rhs);
	Vector2 operator-(const Vector2 & rhs);
	void operator=(const Vector2 & rhs);
	void operator+=(const Vector2 & rhs);
	void operator-=(const Vector2 & rhs);
	void operator*=(double scale);
	void operator/=(double scale);

	static double dot(const Vector2 & v1, const Vector2 & v2);
};

#endif